<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.lgt</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Logtalk) - Theme (Breeze Dark)"/>
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
<span style="color:#7a7c7d;">/* </span>
<span style="color:#7a7c7d;">   Highlighting test case for Logtalk</span>

<span style="color:#7a7c7d;">   Copied from the Logtalk distribution by the Logtalk copright holder</span>
<span style="color:#7a7c7d;">   and contributed using the Apache License 2.0</span>
<span style="color:#7a7c7d;">*/</span>

:-<span style="font-weight:bold;"> encoding</span>(<span style="color:#27ae60;">Encoding</span>).	<span style="color:#7a7c7d;">% this is a single-line comment</span>

<span style="color:#7a7c7d;">/*</span>
<span style="color:#7a7c7d;">this is</span>
<span style="color:#7a7c7d;">a block</span>
<span style="color:#7a7c7d;">comment</span>
<span style="color:#7a7c7d;">*/</span>


:-<span style="font-weight:bold;"> if</span>(<span style="color:#27ae60;">Goal</span>).
	<span style="color:#7a7c7d;">% conditional</span>
:-<span style="font-weight:bold;"> elif</span>(<span style="color:#27ae60;">Goal</span>).
	<span style="color:#7a7c7d;">% compilation</span>
:-<span style="font-weight:bold;"> else</span>.
	<span style="color:#7a7c7d;">% directives</span>
:-<span style="font-weight:bold;"> endif</span>.


:-<span style="font-weight:bold;"> initialization</span>(<span style="color:#27ae60;">Goal</span>).
:-<span style="font-weight:bold;"> op</span>(<span style="color:#27ae60;">Precedence</span>, <span style="color:#27ae60;">Associativity</span>, <span style="color:#27ae60;">Operator</span>).
:-<span style="font-weight:bold;"> ensure_loaded</span>(<span style="color:#27ae60;">File</span>).
:-<span style="font-weight:bold;"> include</span>(<span style="color:#27ae60;">File</span>).
:-<span style="font-weight:bold;"> set_prolog_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>).
:-<span style="font-weight:bold;"> set_logtalk_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>).


:-<span style="font-weight:bold;"> object</span>(prototype,
	<span style="font-weight:bold;">implements</span>(protocol),
	<span style="font-weight:bold;">imports</span>(category),
	<span style="font-weight:bold;">extends</span>(parent)).

	:-<span style="font-weight:bold;"> info</span>([
		version <span style="color:#2980b9;">is</span> <span style="color:#f67400;">1</span><span style="color:#2980b9;">:</span><span style="color:#f67400;">47</span><span style="color:#2980b9;">:</span><span style="color:#f67400;">0</span>,
		author <span style="color:#2980b9;">is</span> <span style="color:#f44f4f;">'Paulo Moura'</span>,
		date <span style="color:#2980b9;">is</span> <span style="color:#f67400;">2019</span><span style="color:#2980b9;">-</span><span style="color:#f67400;">09</span><span style="color:#2980b9;">-</span><span style="color:#f67400;">18</span>,
		comment <span style="color:#2980b9;">is</span> <span style="color:#f44f4f;">'Sample prototype for testing syntax coloring.'</span>
	]).

	:-<span style="font-weight:bold;"> built_in</span>.
	:-<span style="font-weight:bold;"> threaded</span>.
	:-<span style="font-weight:bold;"> dynamic</span>.

	:-<span style="font-weight:bold;"> initialization</span>(some_goal(<span style="color:#27ae60;">X</span>, <span style="color:#27ae60;">Y</span>)).

	:-<span style="font-weight:bold;"> uses</span>([
		foobar <span style="color:#2980b9;">as</span> fb
	]).

	:-<span style="font-weight:bold;"> alias</span>(set, [member<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span> <span style="color:#2980b9;">as</span> set_member<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>]).
	:-<span style="font-weight:bold;"> alias</span>(words, [singular<span style="color:#2980b9;">//</span><span style="color:#f67400;">0</span> <span style="color:#2980b9;">as</span> peculiar<span style="color:#2980b9;">//</span><span style="color:#f67400;">0</span>]).

	:-<span style="font-weight:bold;"> uses</span>(list, [append<span style="color:#2980b9;">/</span><span style="color:#f67400;">3</span>, member<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>]).
	:-<span style="font-weight:bold;"> uses</span>(queues, [new<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span> <span style="color:#2980b9;">as</span> new_queue<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>]).

	:-<span style="font-weight:bold;"> use_module</span>(module).
	:-<span style="font-weight:bold;"> use_module</span>(module, [append<span style="color:#2980b9;">/</span><span style="color:#f67400;">3</span>, member<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>]).

	:-<span style="font-weight:bold;"> multifile</span>(zzz<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>).
	:-<span style="font-weight:bold;"> multifile</span>(module<span style="color:#2980b9;">:</span>zzz<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>).
	:-<span style="font-weight:bold;"> multifile</span>(object<span style="color:#2980b9;">::</span>zzz<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>).

	:-<span style="font-weight:bold;"> coinductive</span>(comember<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>).

	:-<span style="font-weight:bold;"> use_module</span>(module, [xxx<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>, yyy<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>, zzz<span style="color:#2980b9;">/</span><span style="color:#f67400;">3</span>]).
	:-<span style="font-weight:bold;"> export</span>(bbb<span style="color:#2980b9;">/</span><span style="color:#f67400;">3</span>).
	:-<span style="font-weight:bold;"> reexport</span>(cccc<span style="color:#2980b9;">/</span><span style="color:#f67400;">4</span>).

	:-<span style="font-weight:bold;"> public</span>(aaa<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> meta_predicate</span>(aaa(<span style="color:#2980b9;">::</span>, <span style="color:#2980b9;">*</span>)).
	:-<span style="font-weight:bold;"> discontiguous</span>(aaa<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> mode</span>(aaa(<span style="color:#2980b9;">+</span>callable, <span style="color:#2980b9;">?</span>integer), zero_or_one).
	:-<span style="font-weight:bold;"> info</span>(position<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>, [
		comment <span style="color:#2980b9;">is</span> <span style="color:#f44f4f;">'Predicate brief description.'</span>,
		arguments <span style="color:#2980b9;">is</span> [<span style="color:#f44f4f;">'Arg1'</span><span style="color:#2980b9;">-</span><span style="color:#f44f4f;">'Arg1 description'</span>, <span style="color:#f44f4f;">'Arg2'</span><span style="color:#2980b9;">-</span><span style="color:#f44f4f;">'Arg2 description'</span>]
	]).

	:-<span style="font-weight:bold;"> public</span>(nt<span style="color:#2980b9;">//</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> meta_non_terminal</span>(nt(<span style="color:#f67400;">1</span>, <span style="color:#2980b9;">*</span>)).

	:-<span style="font-weight:bold;"> protected</span>(bbb<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> synchronized</span>(bbb<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> mode</span>(bbb(<span style="color:#2980b9;">+</span>integer, <span style="color:#2980b9;">-</span>float), one).
	:-<span style="font-weight:bold;"> info</span>(bbb<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>, [
		comment <span style="color:#2980b9;">is</span> <span style="color:#f44f4f;">'Predicate brief description.'</span>,
		argnames <span style="color:#2980b9;">is</span> [<span style="color:#f44f4f;">'Arg1'</span>, <span style="color:#f44f4f;">'Arg2'</span>]
	]).

	:-<span style="font-weight:bold;"> private</span>(ccc<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> dynamic</span>(ccc<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>).
	:-<span style="font-weight:bold;"> mode</span>(ccc(<span style="color:#2980b9;">@</span>atom, <span style="color:#2980b9;">?</span>atom, <span style="color:#2980b9;">++</span>list, <span style="color:#2980b9;">--</span>ground), one_or_more).
	:-<span style="font-weight:bold;"> info</span>(ccc<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>, [
		comment <span style="color:#2980b9;">is</span> <span style="color:#f44f4f;">'Predicate brief description.'</span>,
		argnames <span style="color:#2980b9;">is</span> [<span style="color:#f44f4f;">'Arg1'</span>, <span style="color:#f44f4f;">'Arg2'</span>]
	]).

	enumerating_entities(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Category</span>) <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">current_category</span>(<span style="color:#27ae60;">Category</span>),
		<span style="color:#8e44ad;">current_object</span>(<span style="color:#27ae60;">Object</span>),
		<span style="color:#8e44ad;">current_protocol</span>(<span style="color:#27ae60;">Protocol</span>).

	enumerating_properties <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">category_property</span>(<span style="color:#27ae60;">Category</span>, <span style="color:#27ae60;">Property</span>),
		<span style="color:#8e44ad;">object_property</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Property</span>),
		<span style="color:#8e44ad;">protocol_property</span>(<span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Property</span>).

	creating_entities(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Category</span>) <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">create_category</span>(<span style="color:#27ae60;">Category</span>, <span style="color:#27ae60;">Relations</span>, <span style="color:#27ae60;">Directives</span>, <span style="color:#27ae60;">Clauses</span>),
		<span style="color:#8e44ad;">create_object</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Relations</span>, <span style="color:#27ae60;">Directives</span>, <span style="color:#27ae60;">Clauses</span>),
		<span style="color:#8e44ad;">create_protocol</span>(<span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Relations</span>, <span style="color:#27ae60;">Directives</span>).

	abolishing_entities(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Category</span>) <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">abolish_category</span>(<span style="color:#27ae60;">Category</span>),
		<span style="color:#8e44ad;">abolish_object</span>(<span style="color:#27ae60;">Object</span>),
		<span style="color:#8e44ad;">abolish_protocol</span>(<span style="color:#27ae60;">Protocol</span>).

	entity_relations <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">extends_object</span>(<span style="color:#27ae60;">Prototype</span>, <span style="color:#27ae60;">Parent</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">extends_protocol</span>(<span style="color:#27ae60;">Protocol1</span>, <span style="color:#27ae60;">Protocol2</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">extends_category</span>(<span style="color:#27ae60;">Category1</span>, <span style="color:#27ae60;">Category2</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">implements_protocol</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">imports_category</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Category</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">instantiates_class</span>(<span style="color:#27ae60;">Instance</span>, <span style="color:#27ae60;">Class</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">specializes_class</span>(<span style="color:#27ae60;">Class</span>, <span style="color:#27ae60;">Superclass</span>, <span style="color:#27ae60;">Scope</span>),
		<span style="color:#8e44ad;">complements_object</span>(<span style="color:#27ae60;">Category</span>, <span style="color:#27ae60;">Object</span>),
		<span style="color:#8e44ad;">conforms_to_protocol</span>(<span style="color:#27ae60;">ObjOrCtg</span>, <span style="color:#27ae60;">Protocol</span>, <span style="color:#27ae60;">Scope</span>).

	event_handling <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">abolish_events</span>(<span style="color:#27ae60;">Event</span>, <span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Message</span>, <span style="color:#27ae60;">Sender</span>, <span style="color:#27ae60;">Monitor</span>),
		<span style="color:#8e44ad;">current_event</span>(<span style="color:#27ae60;">Event</span>, <span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Message</span>, <span style="color:#27ae60;">Sender</span>, <span style="color:#27ae60;">Monitor</span>),
		<span style="color:#8e44ad;">define_events</span>(<span style="color:#27ae60;">Event</span>, <span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Message</span>, <span style="color:#27ae60;">Sender</span>, <span style="color:#27ae60;">Monitor</span>).

	multi_threading <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">threaded</span>(<span style="color:#27ae60;">Goals</span>),
		<span style="color:#8e44ad;">threaded_call</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">threaded_call</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Tag</span>),
		<span style="color:#8e44ad;">threaded_once</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">threaded_once</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Tag</span>),
		<span style="color:#8e44ad;">threaded_ignore</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">threaded_exit</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">threaded_exit</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Tag</span>),
		<span style="color:#8e44ad;">threaded_peek</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">threaded_peek</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Tag</span>),
		<span style="color:#8e44ad;">threaded_cancel</span>(<span style="color:#27ae60;">Tag</span>),
		<span style="color:#8e44ad;">threaded_wait</span>(<span style="color:#27ae60;">Notification</span>),
		<span style="color:#8e44ad;">threaded_notify</span>(<span style="color:#27ae60;">Notification</span>).

	engines <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">threaded_engine</span>(<span style="color:#27ae60;">Engine</span>),
		<span style="color:#8e44ad;">threaded_engine_create</span>(<span style="color:#27ae60;">AnswerTemplate</span>, <span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Engine</span>),
		<span style="color:#8e44ad;">threaded_engine_destroy</span>(<span style="color:#27ae60;">Engine</span>),
		<span style="color:#8e44ad;">threaded_engine_self</span>(<span style="color:#27ae60;">Engine</span>),
		<span style="color:#8e44ad;">threaded_engine_next</span>(<span style="color:#27ae60;">Engine</span>, <span style="color:#27ae60;">Answer</span>),
		<span style="color:#8e44ad;">threaded_engine_next_reified</span>(<span style="color:#27ae60;">Engine</span>, <span style="color:#27ae60;">Answer</span>),
		<span style="color:#8e44ad;">threaded_engine_yield</span>(<span style="color:#27ae60;">Answer</span>),
		<span style="color:#8e44ad;">threaded_engine_post</span>(<span style="color:#27ae60;">Engine</span>, <span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">threaded_engine_fetch</span>(<span style="color:#27ae60;">Term</span>).

	compiling_and_loading <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">logtalk_compile</span>(<span style="color:#27ae60;">File</span>, <span style="color:#27ae60;">Options</span>),
		<span style="color:#8e44ad;">logtalk_load</span>(<span style="color:#27ae60;">File</span>, <span style="color:#27ae60;">Options</span>),
		<span style="color:#8e44ad;">logtalk_library_path</span>(<span style="color:#27ae60;">Library</span>, <span style="color:#27ae60;">Path</span>),
		<span style="color:#8e44ad;">logtalk_load_context</span>(<span style="color:#27ae60;">Key</span>, <span style="color:#27ae60;">Value</span>),
		<span style="color:#8e44ad;">logtalk_make</span>(<span style="color:#27ae60;">Action</span>),
		<span style="color:#8e44ad;">logtalk_make</span>,
		<span style="color:#8e44ad;">logtalk_make_target_action</span>(<span style="color:#27ae60;">Target</span>).

	flags <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">current_logtalk_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>),
		<span style="color:#8e44ad;">set_logtalk_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>),
		<span style="color:#8e44ad;">create_logtalk_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>, <span style="color:#27ae60;">Options</span>).

	execution_context_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">context</span>(<span style="color:#27ae60;">Context</span>),
		<span style="color:#8e44ad;">parameter</span>(<span style="color:#27ae60;">N</span>, <span style="color:#27ae60;">Parameter</span>),
		<span style="color:#8e44ad;">self</span>(<span style="color:#27ae60;">Self</span>),
		<span style="color:#8e44ad;">sender</span>(<span style="color:#27ae60;">Sender</span>),
		<span style="color:#8e44ad;">this</span>(<span style="color:#27ae60;">This</span>).

	reflection_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">current_predicate</span>(<span style="color:#27ae60;">Predicate</span>),
		<span style="color:#8e44ad;">predicate_property</span>(<span style="color:#27ae60;">Predicate</span>, <span style="color:#27ae60;">Property</span>).

	database_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">abolish</span>(<span style="color:#27ae60;">Name</span><span style="color:#2980b9;">/</span><span style="color:#27ae60;">Arity</span>),
		<span style="color:#8e44ad;">asserta</span>(<span style="color:#27ae60;">Clause</span>),
		<span style="color:#8e44ad;">assertz</span>(<span style="color:#27ae60;">Clause</span>),
		<span style="color:#8e44ad;">clause</span>(<span style="color:#27ae60;">Head</span>, <span style="color:#27ae60;">Body</span>),
		<span style="color:#8e44ad;">retract</span>(<span style="color:#27ae60;">Clause</span>),
		<span style="color:#8e44ad;">retractall</span>(<span style="color:#27ae60;">Head</span>).

	exception_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">catch</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Error</span>, <span style="color:#27ae60;">Catcher</span>),
		<span style="color:#8e44ad;">throw</span>(<span style="color:#27ae60;">Error</span>),
		<span style="color:#8e44ad;">instantiation_error</span>,
		<span style="color:#8e44ad;">type_error</span>(<span style="color:#27ae60;">Type</span>, <span style="color:#27ae60;">Culprit</span>),
		<span style="color:#8e44ad;">domain_error</span>(<span style="color:#27ae60;">Domain</span>, <span style="color:#27ae60;">Culprit</span>),
		<span style="color:#8e44ad;">existence_error</span>(<span style="color:#27ae60;">Thing</span>, <span style="color:#27ae60;">Culprit</span>),
		<span style="color:#8e44ad;">permission_error</span>(<span style="color:#27ae60;">Operation</span>, <span style="color:#27ae60;">Permission</span>, <span style="color:#27ae60;">Culprit</span>),
		<span style="color:#8e44ad;">representation_error</span>(<span style="color:#27ae60;">Flag</span>),
		<span style="color:#8e44ad;">evaluation_error</span>(<span style="color:#27ae60;">Exception</span>),
		<span style="color:#8e44ad;">resource_error</span>(<span style="color:#27ae60;">Resource</span>),
		<span style="color:#8e44ad;">syntax_error</span>(<span style="color:#27ae60;">Description</span>),
		<span style="color:#8e44ad;">system_error</span>.

	all_solutions_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">bagof</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">List</span>),
		<span style="color:#8e44ad;">bagof</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Var</span><span style="color:#2980b9;">^</span><span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">List</span>),
		<span style="color:#8e44ad;">findall</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">List</span>),
		<span style="color:#8e44ad;">forall</span>(<span style="color:#27ae60;">Generate</span>, <span style="color:#27ae60;">Test</span>),
		<span style="color:#8e44ad;">setof</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">List</span>),
		<span style="color:#8e44ad;">setof</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Var1</span><span style="color:#2980b9;">^</span><span style="color:#27ae60;">Var2</span><span style="color:#2980b9;">^</span><span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">List</span>).

	event_handler_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">before</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Message</span>, <span style="color:#27ae60;">Sender</span>),
		<span style="color:#8e44ad;">after</span>(<span style="color:#27ae60;">Object</span>, <span style="color:#27ae60;">Message</span>, <span style="color:#27ae60;">Sender</span>).

	message_forwarding_method <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">forward</span>(<span style="color:#27ae60;">Message</span>).

	dcg_rules_parsing_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">phrase</span>(<span style="color:#27ae60;">NonTerminal</span>, <span style="color:#27ae60;">Input</span>, <span style="color:#27ae60;">Rest</span>).

	term_expansion_methods <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">expand_term</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Expanded</span>),
		<span style="color:#8e44ad;">expand_goal</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Expanded</span>),
		<span style="color:#8e44ad;">term_expansion</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Expanded</span>),
		<span style="color:#8e44ad;">goal_expansion</span>(<span style="color:#27ae60;">Goal</span>, <span style="color:#27ae60;">Expanded</span>).

	message_sending <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">Object</span><span style="color:#2980b9;">::</span><span style="color:#27ae60;">Message</span>,
		<span style="color:#2980b9;">::</span><span style="color:#27ae60;">Message</span>,
		<span style="color:#2980b9;">^^</span><span style="color:#27ae60;">Message</span>.

	calling_external_code <span style="color:#2980b9;">:-</span>
		<span style="color:#2980b9;">{</span>goal1, goal2, goal3<span style="color:#2980b9;">}</span>.

	context_switching_calls <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">Object</span><span style="color:#2980b9;">&lt;&lt;</span><span style="color:#27ae60;">Goal</span>.

	lambda_expressions <span style="color:#2980b9;">:-</span>
		<span style="color:#2980b9;">{</span><span style="color:#27ae60;">X</span>,<span style="color:#27ae60;">Y</span>,<span style="color:#27ae60;">Z</span><span style="color:#2980b9;">}/</span>[<span style="color:#27ae60;">P</span>,<span style="color:#27ae60;">Q</span>]<span style="color:#2980b9;">&gt;&gt;</span><span style="color:#27ae60;">Goal</span>.

	explicitly_qualified_module_calls <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">Module</span><span style="color:#2980b9;">:</span><span style="color:#27ae60;">Goal</span>.

	if_then_else <span style="color:#2980b9;">:-</span>
		(	<span style="color:#27ae60;">If</span> <span style="color:#2980b9;">-&gt;</span>
			<span style="color:#27ae60;">Then</span>
		<span style="color:#2980b9;">;</span>	<span style="color:#27ae60;">Else</span>
		).

	numbers <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">X1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">13</span>, <span style="color:#27ae60;">X2</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">-</span><span style="color:#f67400;">13</span>, <span style="color:#27ae60;">X3</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">+</span><span style="color:#f67400;">13</span>,
		<span style="color:#27ae60;">Y1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">13.13</span>, <span style="color:#27ae60;">Y2</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">-</span><span style="color:#f67400;">13.13</span>, <span style="color:#27ae60;">Y3</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">+</span><span style="color:#f67400;">13.13</span>,
		<span style="color:#27ae60;">Z1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">13.13e-23</span>, <span style="color:#27ae60;">Z2</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">-</span><span style="color:#f67400;">13.13e-23</span>, <span style="color:#27ae60;">Z3</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">+</span><span style="color:#f67400;">13.13e-23</span>,
		<span style="color:#27ae60;">C1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'A</span>, <span style="color:#27ae60;">C2</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0''</span>, <span style="color:#27ae60;">C3</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'&quot;</span>, <span style="color:#27ae60;">C4</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'%</span>,
		<span style="color:#27ae60;">C5</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'\n</span>, <span style="color:#27ae60;">C6</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'\\</span>, <span style="color:#27ae60;">C7</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'\'</span>, <span style="color:#27ae60;">C8</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'\&quot;</span>, <span style="color:#27ae60;">C9</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0'\`</span>,
		<span style="color:#27ae60;">B1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0b1011101</span>,
		<span style="color:#27ae60;">O1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0o1234560</span>,
		<span style="color:#27ae60;">H1</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">0x1234567890abcDEF</span>.

	functions <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">A</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">atan</span>(<span style="color:#f67400;">3.14</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">atan2</span>(<span style="color:#f67400;">1</span>, <span style="color:#f67400;">0</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">acos</span>(<span style="color:#f67400;">0.5</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">asin</span>(<span style="color:#f67400;">0.5</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">sin</span>(<span style="color:#f67400;">0.77</span>) <span style="color:#2980b9;">-</span> <span style="color:#8e44ad;">cos</span>(<span style="color:#f67400;">123.23</span>) <span style="color:#2980b9;">-</span> <span style="color:#8e44ad;">tan</span>(<span style="color:#f67400;">0.33</span>),
		<span style="color:#27ae60;">B</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">sign</span>(<span style="color:#2980b9;">-</span><span style="color:#f67400;">12</span>) <span style="color:#2980b9;">*</span> <span style="color:#8e44ad;">abs</span>(<span style="color:#f67400;">35</span><span style="color:#2980b9;">/</span><span style="color:#f67400;">78</span>),
		<span style="color:#27ae60;">C</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">truncate</span>(<span style="color:#f67400;">3.14</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">round</span>(<span style="color:#2980b9;">-</span><span style="color:#f67400;">7.8</span>) <span style="color:#2980b9;">-</span> <span style="color:#8e44ad;">ceiling</span>(<span style="color:#f67400;">111.88</span>),
		<span style="color:#27ae60;">D</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">exp</span>(<span style="color:#f67400;">3.8</span>) <span style="color:#2980b9;">-</span> <span style="color:#8e44ad;">log</span>(<span style="color:#f67400;">123.98</span>) <span style="color:#2980b9;">/</span> <span style="color:#8e44ad;">sqrt</span>(<span style="color:#f67400;">33</span>) <span style="color:#2980b9;">*</span> <span style="color:#f67400;">23</span> <span style="color:#2980b9;">**</span> <span style="color:#f67400;">4</span> <span style="color:#2980b9;">+</span> <span style="color:#f67400;">12345</span><span style="color:#2980b9;">^</span><span style="color:#f67400;">2</span>,
		<span style="color:#27ae60;">E</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">rem</span>(<span style="color:#f67400;">3</span>, <span style="color:#f67400;">2</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">mod</span>(<span style="color:#f67400;">5</span>, <span style="color:#f67400;">3</span>) <span style="color:#2980b9;">-</span> <span style="color:#8e44ad;">div</span>(<span style="color:#f67400;">8</span>, <span style="color:#f67400;">4</span>) <span style="color:#2980b9;">*</span> <span style="color:#f67400;">2</span> <span style="color:#2980b9;">rem</span> <span style="color:#f67400;">2</span> <span style="color:#2980b9;">//</span> <span style="color:#f67400;">5</span> <span style="color:#2980b9;">mod</span> <span style="color:#f67400;">3</span> <span style="color:#2980b9;">-</span> <span style="color:#f67400;">8</span> <span style="color:#2980b9;">div</span> <span style="color:#f67400;">4</span> <span style="color:#2980b9;">+</span> <span style="color:#2980b9;">pi</span> <span style="color:#2980b9;">*</span> <span style="color:#2980b9;">e</span>,
		<span style="color:#27ae60;">F</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">float_fractional_part</span>(<span style="color:#f67400;">3.14</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">float_integer_part</span>(<span style="color:#f67400;">3.14</span>),
		<span style="color:#27ae60;">G</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">float</span>(<span style="color:#f67400;">33</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">floor</span>(<span style="color:#f67400;">99.99</span>),
		<span style="color:#27ae60;">I</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">min</span>(<span style="color:#f67400;">3</span>,<span style="color:#f67400;">4</span>) <span style="color:#2980b9;">+</span> <span style="color:#8e44ad;">max</span>(<span style="color:#f67400;">4</span>,<span style="color:#f67400;">5</span>).

	bitwise <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">A</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">16</span> <span style="color:#2980b9;">&gt;&gt;</span> <span style="color:#f67400;">2</span>,
		<span style="color:#27ae60;">B</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">16</span> <span style="color:#2980b9;">&lt;&lt;</span> <span style="color:#f67400;">2</span>,
		<span style="color:#27ae60;">C</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">10</span> <span style="color:#2980b9;">/\</span> <span style="color:#f67400;">12</span>,
		<span style="color:#27ae60;">D</span> <span style="color:#2980b9;">is</span> <span style="color:#f67400;">10</span> <span style="color:#2980b9;">\/</span> <span style="color:#f67400;">12</span>,
		<span style="color:#27ae60;">E</span> <span style="color:#2980b9;">is</span> \ <span style="color:#f67400;">10</span>,
		<span style="color:#27ae60;">F</span> <span style="color:#2980b9;">is</span> <span style="color:#8e44ad;">xor</span>(<span style="color:#f67400;">13</span>, <span style="color:#f67400;">7</span>).

	term_unification <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">=</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">\=</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#8e44ad;">unify_with_occurs_check</span>(<span style="color:#27ae60;">Term1</span>, <span style="color:#27ae60;">Term2</span>),
		<span style="color:#8e44ad;">subsumes_term</span>(<span style="color:#27ae60;">General</span>, <span style="color:#27ae60;">Specific</span>).

	term_testing <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">atom</span>(<span style="color:#27ae60;">Atom</span>),
		<span style="color:#8e44ad;">atomic</span>(<span style="color:#27ae60;">Atomic</span>),
		<span style="color:#8e44ad;">integer</span>(<span style="color:#27ae60;">Integer</span>),
		<span style="color:#8e44ad;">float</span>(<span style="color:#27ae60;">Float</span>),
		<span style="color:#8e44ad;">callable</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">compound</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">nonvar</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">var</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">Number</span>),
		<span style="color:#8e44ad;">ground</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">acyclic_term</span>(<span style="color:#27ae60;">Term</span>).

	term_comparison <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">compare</span>(<span style="color:#27ae60;">Order</span>, <span style="color:#27ae60;">Term1</span>, <span style="color:#27ae60;">Term2</span>),
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">==</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">\==</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">@&lt;</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">@=&lt;</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">@&gt;=</span> <span style="color:#27ae60;">Term2</span>,
		<span style="color:#27ae60;">Term1</span> <span style="color:#2980b9;">@&gt;</span> <span style="color:#27ae60;">Term2</span>.

	term_creation_and_decomposition <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">functor</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Name</span>, <span style="color:#27ae60;">Arity</span>),
		<span style="color:#8e44ad;">arg</span>(<span style="color:#27ae60;">N</span>, <span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Arg</span>),
		<span style="color:#27ae60;">Term</span> <span style="color:#2980b9;">=..</span> [<span style="color:#27ae60;">Functor</span>| <span style="color:#27ae60;">Args</span>],
		<span style="color:#8e44ad;">copy_term</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Copy</span>),
		<span style="color:#8e44ad;">numbervars</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Start</span>, <span style="color:#27ae60;">End</span>),
		<span style="color:#8e44ad;">term_variables</span>(<span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Variables</span>).

	arithmetic_evaluation <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">X</span> <span style="color:#2980b9;">is</span> <span style="color:#27ae60;">Expression</span>.

	arithmetic_comparison <span style="color:#2980b9;">:-</span>
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">=:=</span> <span style="color:#27ae60;">Exp2</span>,
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">=\=</span> <span style="color:#27ae60;">Exp2</span>,
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">&lt;</span> <span style="color:#27ae60;">Exp2</span>,
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">=&lt;</span> <span style="color:#27ae60;">Exp2</span>,
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">&gt;</span> <span style="color:#27ae60;">Exp2</span>,
		<span style="color:#27ae60;">Exp1</span> <span style="color:#2980b9;">&gt;=</span> <span style="color:#27ae60;">Exp2</span>.

	stream_selection_and_control <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">current_input</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">current_output</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">set_input</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">set_output</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">open</span>(<span style="color:#27ae60;">Source</span>, <span style="color:#27ae60;">Mode</span>, <span style="color:#27ae60;">Stream</span>, <span style="color:#27ae60;">Options</span>),
		<span style="color:#8e44ad;">close</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">flush_output</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">stream_property</span>(<span style="color:#27ae60;">Stream</span>, <span style="color:#27ae60;">Property</span>),
		<span style="color:#8e44ad;">at_end_of_stream</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">set_stream_position</span>(<span style="color:#27ae60;">Stream</span>, <span style="color:#27ae60;">Position</span>),
		<span style="color:#8e44ad;">flush_output</span>,
		<span style="color:#8e44ad;">at_end_of_stream</span>.

	character_input_output <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">get_char</span>(<span style="color:#27ae60;">Char</span>),
		<span style="color:#8e44ad;">get_code</span>(<span style="color:#27ae60;">Code</span>),
		<span style="color:#8e44ad;">peek_char</span>(<span style="color:#27ae60;">Char</span>),
		<span style="color:#8e44ad;">peek_code</span>(<span style="color:#27ae60;">Code</span>),
		<span style="color:#8e44ad;">put_char</span>(<span style="color:#27ae60;">Char</span>),
		<span style="color:#8e44ad;">put_code</span>(<span style="color:#27ae60;">Code</span>),
		<span style="color:#8e44ad;">nl</span>(<span style="color:#27ae60;">Stream</span>),
		<span style="color:#8e44ad;">nl</span>.

	byte_input_output <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">get_byte</span>(<span style="color:#27ae60;">Byte</span>),
		<span style="color:#8e44ad;">peek_byte</span>(<span style="color:#27ae60;">Byte</span>),
		<span style="color:#8e44ad;">put_byte</span>(<span style="color:#27ae60;">Byte</span>).

	term_input_output <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">read</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">read_term</span>(<span style="color:#27ae60;">Stream</span>, <span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Options</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">write_canonical</span>(<span style="color:#27ae60;">Term</span>),
		<span style="color:#8e44ad;">write_term</span>(<span style="color:#27ae60;">Stream</span>, <span style="color:#27ae60;">Term</span>, <span style="color:#27ae60;">Options</span>),
		<span style="color:#8e44ad;">current_op</span>(<span style="color:#27ae60;">Precedence</span>, <span style="color:#27ae60;">Associativity</span>, <span style="color:#27ae60;">Operator</span>),
		<span style="color:#8e44ad;">op</span>(<span style="color:#27ae60;">Precedence</span>, <span style="color:#27ae60;">Associativity</span>, <span style="color:#27ae60;">Operator</span>),
		<span style="color:#8e44ad;">current_char_conversion</span>(<span style="color:#27ae60;">InChar</span>, <span style="color:#27ae60;">OutChar</span>),
		<span style="color:#8e44ad;">char_conversion</span>(<span style="color:#27ae60;">InChar</span>, <span style="color:#27ae60;">OutChar</span>).

	logic_and_control <span style="color:#2980b9;">:-</span>
		<span style="color:#2980b9;">\+</span> <span style="color:#27ae60;">Goal</span>,
		<span style="color:#8e44ad;">call</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">once</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">ignore</span>(<span style="color:#27ae60;">Goal</span>),
		<span style="color:#8e44ad;">true</span>,
		<span style="color:#8e44ad;">fail</span>,
		<span style="color:#8e44ad;">false</span>,
		<span style="color:#8e44ad;">repeat</span>,
		<span style="color:#2980b9;">!</span>.

	atomic_term_processing <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">atom_length</span>(<span style="color:#27ae60;">Atom</span>, <span style="color:#27ae60;">Length</span>),
		<span style="color:#8e44ad;">atom_chars</span>(<span style="color:#27ae60;">Atom</span>, <span style="color:#27ae60;">Chars</span>),
		<span style="color:#8e44ad;">atom_codes</span>(<span style="color:#27ae60;">Atom</span>, <span style="color:#27ae60;">Codes</span>),
		<span style="color:#8e44ad;">atom_concat</span>(<span style="color:#27ae60;">Atom1</span>, <span style="color:#27ae60;">Atom2</span>, <span style="color:#27ae60;">Atom</span>),
		<span style="color:#8e44ad;">sub_atom</span>(<span style="color:#27ae60;">Atom</span>, <span style="color:#27ae60;">Before</span>, <span style="color:#27ae60;">Length</span>, <span style="color:#27ae60;">After</span>, <span style="color:#27ae60;">SubAtom</span>),
		<span style="color:#8e44ad;">char_code</span>(<span style="color:#27ae60;">Char</span>, <span style="color:#27ae60;">Code</span>),
		<span style="color:#8e44ad;">number_chars</span>(<span style="color:#27ae60;">Number</span>, <span style="color:#27ae60;">Chars</span>),
		<span style="color:#8e44ad;">number_codes</span>(<span style="color:#27ae60;">Number</span>, <span style="color:#27ae60;">Codes</span>).

	implementation_defined_hooks <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">current_prolog_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>),
		<span style="color:#8e44ad;">set_prolog_flag</span>(<span style="color:#27ae60;">Flag</span>, <span style="color:#27ae60;">Value</span>),
		<span style="color:#8e44ad;">halt</span>(<span style="color:#27ae60;">ExitCode</span>),
		<span style="color:#8e44ad;">halt</span>.

	sorting <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">keysort</span>(<span style="color:#27ae60;">List</span>, <span style="color:#27ae60;">Sorted</span>),
		<span style="color:#8e44ad;">sort</span>(<span style="color:#27ae60;">List</span>, <span style="color:#27ae60;">Sorted</span>).

	<span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">C</span>) <span style="color:#2980b9;">--&gt;</span> <span style="color:#f44f4f;">&quot;+&quot;</span>, <span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">C</span>).
	<span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">C</span>) <span style="color:#2980b9;">--&gt;</span> <span style="color:#f44f4f;">&quot;-&quot;</span>, <span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">X</span>), <span style="color:#2980b9;">{</span><span style="color:#27ae60;">C</span> <span style="color:#2980b9;">is</span> <span style="color:#2980b9;">-</span><span style="color:#27ae60;">X</span><span style="color:#2980b9;">}</span>.
	<span style="color:#8e44ad;">number</span>(<span style="color:#27ae60;">X</span>) <span style="color:#2980b9;">--&gt;</span> [<span style="color:#27ae60;">C</span>], <span style="color:#2980b9;">{</span><span style="color:#f67400;">0'0</span> <span style="color:#2980b9;">=&lt;</span> <span style="color:#27ae60;">C</span>, <span style="color:#27ae60;">C</span> <span style="color:#2980b9;">=&lt;</span> <span style="color:#f67400;">0'9</span>, <span style="color:#27ae60;">X</span> <span style="color:#2980b9;">is</span> <span style="color:#27ae60;">C</span> <span style="color:#2980b9;">-</span> <span style="color:#f67400;">0'0</span><span style="color:#2980b9;">}</span>.

	escape_sequences <span style="color:#2980b9;">:-</span>
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with a quote ('') inside.'</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with a quote (</span><span style="color:#3daee9;">\'</span><span style="color:#f44f4f;">) inside using a control escape sequence.'</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with a backslash (</span><span style="color:#3daee9;">\\</span><span style="color:#f44f4f;">) inside.'</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with control escape sequences: </span><span style="color:#3daee9;">\a</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\b</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\r</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\f</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\t</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\n</span><span style="color:#f44f4f;"> </span><span style="color:#3daee9;">\v</span><span style="color:#f44f4f;">'</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with an octal escape sequence: </span><span style="color:#3daee9;">\123\</span><span style="color:#f44f4f;">.'</span>),
		<span style="color:#8e44ad;">write</span>(<span style="color:#f44f4f;">'Quoted atom with an hexadecimal escape sequence: </span><span style="color:#3daee9;">\x123f\</span><span style="color:#f44f4f;">.'</span>).

	<span style="color:#7a7c7d;">% nothing in the following predicate definition should be highlighted</span>
	sort <span style="color:#2980b9;">:-</span>
		forall,
		object,
		write,
		number.

:-<span style="font-weight:bold;"> end_object</span>.


:-<span style="font-weight:bold;"> object</span>(class,
	<span style="font-weight:bold;">implements</span>(protected<span style="color:#2980b9;">::</span>protocol),
	<span style="font-weight:bold;">imports</span>(private<span style="color:#2980b9;">::</span>category),
	<span style="font-weight:bold;">instantiates</span>(metaclass),
	<span style="font-weight:bold;">specializes</span>(superclass)).

:-<span style="font-weight:bold;"> end_object</span>.


:-<span style="font-weight:bold;"> object</span>(parametric(<span style="color:#27ae60;">Parameter</span>, <span style="color:#f44f4f;">&quot;String&quot;</span>, <span style="color:#f67400;">33.78</span>),
	<span style="font-weight:bold;">implements</span>(protocol),
	<span style="font-weight:bold;">imports</span>(category),
	<span style="font-weight:bold;">extends</span>(parent(<span style="color:#27ae60;">Parameter</span>))).

:-<span style="font-weight:bold;"> end_object</span>.


:-<span style="font-weight:bold;"> category</span>(category,
	<span style="font-weight:bold;">implements</span>(protocol),
	<span style="font-weight:bold;">extends</span>(other_category)).

:-<span style="font-weight:bold;"> end_category</span>.


:-<span style="font-weight:bold;"> protocol</span>(extended,
	<span style="font-weight:bold;">extends</span>(minimal)).

:-<span style="font-weight:bold;"> end_protocol</span>.


:-<span style="font-weight:bold;"> module</span>(module, [foo<span style="color:#2980b9;">/</span><span style="color:#f67400;">1</span>, bar<span style="color:#2980b9;">/</span><span style="color:#f67400;">2</span>]).

:-<span style="font-weight:bold;"> use_module</span>(library).
:-<span style="font-weight:bold;"> use_module</span>(library, [baz<span style="color:#2980b9;">/</span><span style="color:#f67400;">3</span>]).

:-<span style="font-weight:bold;"> reexport</span>(library).
:-<span style="font-weight:bold;"> reexport</span>(library, [qux<span style="color:#2980b9;">/</span><span style="color:#f67400;">4</span>]).

:-<span style="font-weight:bold;"> export</span>(quux<span style="color:#2980b9;">/</span><span style="color:#f67400;">5</span>).
</pre></body></html>
